package com.ljf.authority.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * 菜单列表定义对象  authority_base_menu_tabulation
 *
 * @author LJF
 * @since 2024-10-17
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("菜单列表定义")
@EqualsAndHashCode(callSuper = true)
@TableName("authority_base_menu_tabulation")
public class AuthorityBaseMenuTabulation extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link AuthorityBaseMenuTabulation#COL_ID}
	 */
	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(60)
	 * 注释: 编码
	 * {@link AuthorityBaseMenuTabulation#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(30)
	 * 注释: 名称
	 * {@link AuthorityBaseMenuTabulation#COL_NAME}
	 */
	@TableField("name")
	@JsonProperty("name")
	@ApiModelProperty(value = "名称")
	private String name;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(10)
	 * 注释: 标签
	 * {@link AuthorityBaseMenuTabulation#COL_LABEL}
	 * {@link com.ljf.authority.enums.AuthorityBaseMenuTabulationLevelEnum}
	 */
	@TableField("label")
	@JsonProperty("label")
	@ApiModelProperty(value = "标签")
	private String label;

	/**
	 * Java类型: Integer
	 * 数据库类型: smallint unsigned
	 * 注释: 排序
	 * {@link AuthorityBaseMenuTabulation#COL_SORT}
	 */
	@TableField("sort")
	@JsonProperty("sort")
	@ApiModelProperty(value = "排序")
	private Integer sort;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(60)
	 * 注释: 上级编码
	 * {@link AuthorityBaseMenuTabulation#COL_P_CODE}
	 */
	@TableField("p_code")
	@JsonProperty("pCode")
	@ApiModelProperty(value = "上级编码")
	private String pCode;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 层级(1:主菜单;2:菜单分类;3:页面;4:按钮)
	 * {@link AuthorityBaseMenuTabulation#COL_LEVEL}
	 */
	@TableField("level")
	@JsonProperty("level")
	@ApiModelProperty(value = "层级(1:主菜单;2:菜单分类;3:页面;4:按钮)")
	private Integer level;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 激活状态(1:未激活;2:已激活)
	 * {@link AuthorityBaseMenuTabulation#COL_ACTIVATION}
	 * {@link com.ljf.common.enums.ActivationEnum}
	 */
	@TableField("activation")
	@JsonProperty("activation")
	@ApiModelProperty(value = "激活状态(1:未激活;2:已激活)")
	private Integer activation;


	/**
	 * ID
	 * {@link AuthorityBaseMenuTabulation#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 编码
	 * {@link AuthorityBaseMenuTabulation#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * 名称
	 * {@link AuthorityBaseMenuTabulation#name}
	 */
	public static final String COL_NAME = "name";
	/**
	 * 标签
	 * {@link AuthorityBaseMenuTabulation#label}
	 */
	public static final String COL_LABEL = "label";
	/**
	 * 排序
	 * {@link AuthorityBaseMenuTabulation#sort}
	 */
	public static final String COL_SORT = "sort";
	/**
	 * 上级编码
	 * {@link AuthorityBaseMenuTabulation#pCode}
	 */
	public static final String COL_P_CODE = "p_code";
	/**
	 * 层级(1:主菜单;2:菜单分类;3:页面;4:按钮)
	 * {@link AuthorityBaseMenuTabulation#level}
	 */
	public static final String COL_LEVEL = "level";
	/**
	 * 激活状态(1:未激活;2:已激活)
	 * {@link AuthorityBaseMenuTabulation#activation}
	 */
	public static final String COL_ACTIVATION = "activation";

}
